Skip to content

SNOW-3488564: Remove Python 3.9#4218

Merged
sfc-gh-joshi merged 5 commits into
mainfrom
joshi-SNOW-3488564-py39-decommission
Jun 5, 2026
Merged

SNOW-3488564: Remove Python 3.9#4218
sfc-gh-joshi merged 5 commits into
mainfrom
joshi-SNOW-3488564-py39-decommission

Conversation

@sfc-gh-joshi

@sfc-gh-joshi sfc-gh-joshi commented May 7, 2026

Copy link
Copy Markdown
Contributor
  1. Which Jira issue is this PR addressing? Make sure that there is an accompanying issue to your PR.

    Fixes SNOW-3488564

  2. Fill out the following pre-review checklist:

    • I am adding a new automated test(s) to verify correctness of my new code
      • If this test skips Local Testing mode, I'm requesting review from @snowflakedb/local-testing
    • I am adding new logging messages
    • I am adding a new telemetry message
    • I am adding new credentials
    • I am adding a new dependency
    • If this is a new feature/behavior, I'm adding the Local Testing parity changes.
    • I acknowledge that I have ensured my changes to be thread-safe. Follow the link for more information: Thread-safe Developer Guidelines
    • If adding any arguments to public Snowpark APIs or creating new public Snowpark APIs, I acknowledge that I have ensured my changes include AST support. Follow the link for more information: AST Support Guidelines
  3. Please describe how your code solves the related issue.

Removes support for Python 3.9, adjusting import guards/test skips as needed. Tox environments and github actions jobs that previously used 3.9 have been bumped to 3.10 or removed.

@sfc-gh-joshi sfc-gh-joshi requested review from a team as code owners May 7, 2026 21:25
@sfc-gh-joshi sfc-gh-joshi force-pushed the joshi-SNOW-3488564-py39-decommission branch from 7cae338 to f6a08a3 Compare May 7, 2026 21:50
@sfc-gh-joshi sfc-gh-joshi added NO-CHANGELOG-UPDATES This pull request does not need to update CHANGELOG.md NO-PANDAS-CHANGEDOC-UPDATES This PR does not update Snowpark pandas docs labels May 8, 2026

@sfc-gh-mayliu sfc-gh-mayliu left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Snowpark-python specific python3.9 decommission changes look good; a few other places might also need updates. Another place I found is ReleaseSnowparkPythonPackageJob.groovy default release params still include 3.9. Can we drop that here too so the release job matches the supported matrix?

Comment thread ci/test_fips.sh
Comment thread scripts/conda_build.sh
@@ -1,5 +1,4 @@
# Used internally by AnacondaPackageBuilder jobs
conda build recipe/ -c sfe1ed40 --python=3.9 --numpy=1.19

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

conda builds look right to drop 3.9. Do we need the matching Jenkins packaging update too? jenkins_utils' Snowpark BuildAnaconda.groovy still shells out with --python=3.9`, so shall we sync that as well?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

conda builds look right to drop 3.9. Do we need the matching Jenkins packaging update too? jenkins_utils' Snowpark BuildAnaconda.groovy still shells out with --python=3.9`, so shall we sync that as well?

That would make sense, but it looks like that file is also missing builds for 3.12, 3.13, and 3.14 entirely (which already exist in this repository's conda_build.sh). I'm not sure if that groovy file is still used anywhere.

@sfc-gh-mayliu

Copy link
Copy Markdown
Collaborator

It'd be great to trigger all relevant Jenkins jobs with this branch to monitor how Snowpark-python's 3.9 decommission impact downstream Jenkins builds. We could leverage this target: https://snowpark-python-001.jenkinsdev1.us-west-2.aws-dev.app.snowflake.com/job/SnowparkPythonReleaseValidationTrigger/

@sfc-gh-joshi

Copy link
Copy Markdown
Contributor Author

I just kicked off a release validation run: https://snowpark-python-001.jenkinsdev1.us-west-2.aws-dev.app.snowflake.com/job/SnowparkPythonReleaseValidationTrigger/83/

Snowpark-python specific python3.9 decommission changes look good; a few other places might also need updates. Another place I found is ReleaseSnowparkPythonPackageJob.groovy default release params still include 3.9. Can we drop that here too so the release job matches the supported matrix?

It looks like this job was last run almost a year ago, do we know who's using it? https://snowpark-python-001.jenkinsdev1.us-west-2.aws-dev.app.snowflake.com/job/ArtifactRepository/job/ReleaseSnowparkPythonPackageJob/

@sfc-gh-joshi sfc-gh-joshi force-pushed the joshi-SNOW-3488564-py39-decommission branch from 68df29a to bb1d7e4 Compare June 2, 2026 18:57
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.48%. Comparing base (495acce) to head (bb1d7e4).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4218      +/-   ##
==========================================
+ Coverage   95.38%   95.48%   +0.09%     
==========================================
  Files         171      171              
  Lines       44243    44175      -68     
  Branches     7557     7532      -25     
==========================================
- Hits        42203    42180      -23     
+ Misses       1252     1231      -21     
+ Partials      788      764      -24     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sfc-gh-tycole sfc-gh-tycole left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decomm server side was paused and would begin next week - but testing changes LGTM.

if major_version == 3 and minor_version < 9:
# Remove the `to_snowpark_pandas` test since Snowpark pandas is only supported in Python 3.9+.
if major_version == 3 and minor_version < 10:
# Remove the `to_snowpark_pandas` test since Snowpark pandas is only supported in Python 3.10+.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this true?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. This check was technically already out-dated: the Snowpark pandas feature only supports pandas versions 2.2 and 2.3, which don't support Python 3.9.

@sfc-gh-joshi sfc-gh-joshi merged commit 8a14f6a into main Jun 5, 2026
30 checks passed
@sfc-gh-joshi sfc-gh-joshi deleted the joshi-SNOW-3488564-py39-decommission branch June 5, 2026 20:55
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 5, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

NO-CHANGELOG-UPDATES This pull request does not need to update CHANGELOG.md NO-PANDAS-CHANGEDOC-UPDATES This PR does not update Snowpark pandas docs snowpark-pandas

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants